/**
 * @file 用户凭据数据库模式
 * @description 定义用户凭据的数据库模式和迁移逻辑
 * @author AI Assistant
 * @version 1.0.0
 * @since 2025-10-22
 */

import type Realm from 'realm'

/**
 * 用户凭据数据库模式版本 1
 */
export const userCredentialSchemaV1: Realm.ObjectSchema = {
  name: 'UserCredential',
  primaryKey: '_id',
  properties: {
    _id: 'objectId',
    id: { type: 'int', optional: true, indexed: true },
    domain: { type: 'string', indexed: true },
    site_name: 'string?',
    username: 'string',
    password: 'string',
    favicon_url: 'string?',
    auto_fill_enabled: { type: 'bool', default: true },
    is_synced: { type: 'bool', default: false },
    server_id: 'string?',
    last_used_at: 'date?',
    created_at: 'date',
    updated_at: 'date'
  }
}

/**
 * 密码管理器设置数据库模式
 */
export const passwordManagerSettingsSchema: Realm.ObjectSchema = {
  name: 'PasswordManagerSettings',
  primaryKey: '_id',
  properties: {
    _id: 'objectId',
    enabled: { type: 'bool', default: true },
    auto_fill_enabled: { type: 'bool', default: true },
    save_prompt_enabled: { type: 'bool', default: true },
    sync_enabled: { type: 'bool', default: true },
    created_at: 'date',
    updated_at: 'date'
  }
}

/**
 * 获取所有密码管理器相关的数据库模式
 */
// export function getPasswordManagerSchemas(): Realm.ObjectSchema[] {
//   return [userCredentialSchemaV1, passwordManagerSettingsSchema]
// }
//
// /**
//  * 数据库迁移函数
//  */
// export function migratePasswordManagerSchemas(oldRealm: Realm, newRealm: Realm): void {
//   // 目前是第一个版本，暂无迁移逻辑
//   // 未来版本更新时在此添加迁移代码
//   console.log('密码管理器数据库模式迁移完成')
// }
